;
;     Library library documentation - MultiOS version !
;
;       Done by AlphaSND - (c) Fantaisie Software
;

@Library Library

@Overview

  Libaries (Befehls-Bibliotheken) sind "shared" (zur Benutzung mit verschiedenen Applikationen freigegebene)
  OS-Komponenten, die dem Programmierer spezielle Funktionen anbieten. Zum Beispiel kann eine Library Befehle
  zum einfachen Handhaben und Manipulieren von Bildern enthalten. Jedes OS bietet eine Anzahl an "shared"
  Libraries, um das Programmierer-Leben zu vereinfachen. Mit PureBasic ist es mglich, diese Libraries
  einfach und dynamisch zu benutzen !

@OS Windows
@LineBreak
@LineBreak
  Unter Windows sind diese Libraries gut bekannt unter dem Namen 'DLL'.

@CommandList

@Example Windows Library.pb

@SupportedOS Windows, AmigaOS, Linux

;--------------------------------------------------------------------------------------------------------

@Function CloseLibrary(#Library)

@Description
  Schliet die angegebene #Library und gibt den zuvor reservierten Speicher frei.
  
@SupportedOS Windows, AmigaOS, Linux

;--------------------------------------------------------------------------------------------------------

@Function Result = CallFunction(#Library, FunctionName$ [,Parameter1 [, Parameter2...]])

@Description
  Ruft eine Funktion in der angegebenen #Library, die zuvor mittels @Link OpenLibrary() geffnet wurde,
  anhand ihres Namens 'FunctionName$' auf. Eine beliebige Anzahl an Parametern kann angegeben werden,
  muss aber mit der von der Funktion bentigten Anzahl bereinstimmen. Zum Beispiel, wenn eine Funktion
  2 Parameter bentigt, mssen 2 Parameter angegeben werden, auch wenn diese 2 Werte gleich null sind.
  'Result' enthlt das Ergebnis der aufgerufenen Funktion.
  
@SupportedOS Windows, AmigaOS, Linux

;--------------------------------------------------------------------------------------------------------

@Function Result = CallFunctionFast(*FunctionPointer [,Parameter1 [, Parameter2...]])

@Description
  Ruft eine Library-Funktion mittels ihres Zeigers '*FunctionPointer', der zuvor mit @Link IsFunction()
  ermittelt wurde, auf. Dies ist die schnellste Mglichkeit hierfr. Eine beliebige Anzahl an Parametern
  kann angegeben werden, muss aber mit der von der Funktion bentigten Anzahl bereinstimmen. Zum Beispiel,
  wenn eine Funktion 2 Parameter bentigt, mssen 2 Parameter angegeben werden, auch wenn diese 2 Werte
  gleich null sind. 'Result' enthlt das Ergebnis der aufgerufenen Funktion.
  
@SupportedOS Windows, AmigaOS, Linux

;--------------------------------------------------------------------------------------------------------

@Function Result = IsFunction(#Library, FunctionName$)

@Description
  berprft, ob die angegebene '#Library', welche zuvor mit @Link OpenLibrary() geffnet wurde, die 
  angegebene Funktion 'FunctionName$' enthlt. Achtung, diese Funktion arbeitet immer "case-sensitive"
  (achtet auf Gro- und Kleinschreibung). Ist das Ergebnis 'Result' gleich 0, dann wurde die Funktion
  nicht gefunden. Andernfalls wird ein Zeiger (Pointer) auf die Funktion zurckgegeben, ntzlich in
  Verbindung mit @Link CallFunctionFast().
  
@SupportedOS Windows, AmigaOS, Linux

;--------------------------------------------------------------------------------------------------------

@Function Result = OpenLibrary(#Library, DateiName$)

@Description
  ffnet die angegebene Library. Ist das 'Ergebnis' gleich 0, dann konnte die Library nicht geffnet
  werden (die Library wurde nicht gefunden oder ist korrupt).

@SupportedOS Windows, AmigaOS, Linux
